home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 476-500 / disk_498 / cpalette / src / includes / gadgets.asm < prev    next >
Assembly Source File  |  1992-05-06  |  4KB  |  209 lines

  1. ; *** GADGETS.ASM
  2.  
  3. ; GADGET SUPPORT ROUTINES FOR BOOLEAN, STRING, AND PROPORTIONAL TYPES
  4.  
  5. SIZE.BBORDER EQU 40
  6. BB.BUTTONLINES EQU 16
  7.  
  8. ; NEWPGADG MACRO
  9.  
  10. NEWSGADG MACRO
  11.   LEA \1,A0
  12.   LEA \2,A1
  13.   MOVE.W #\3,D4
  14.   MOVE.W #\4,D5
  15.   BSR MAKEASTRINGADGET
  16.   MOVE.L \5,A0
  17.   MOVE.L D0,A1
  18.   BSR ADDNEWGADG
  19.  ENDM
  20.  
  21. NEWBGADG MACRO
  22.   LEA \1,A1
  23.   MOVE.W #\2,D4
  24.   MOVE.W #\3,D5
  25.   BSR MAKEAGADGET
  26.   MOVE.L \4,A0
  27.   MOVE.L D0,A1
  28.   BSR ADDNEWGADG
  29.  ENDM
  30.  
  31. ADDNEWGADG
  32.   ZERO D0
  33.   MOVE.W #-1,D0
  34.   INTLIB ADDGADGET
  35.   MOVE.L _THISGADGET,D0
  36.  RTS
  37.  
  38. MAKEAGADGET
  39.   MOVE.L A1,_THISGTEXT
  40.   REMEMBERPUBMEM REMEMBERKEY,#SIZE.BBORDER
  41.   TST.L D0
  42.   BEQ ERR_MAKEAGADGETMEM
  43.   MOVE.L D0,_THISBBORDER
  44.   TST.L _THISGTEXT
  45.   BNE.S GADGIT        ; SKIP FOR NO-TEXT BOOLEANS
  46.   ZERO D0
  47.   MOVE.L D0,_THISGITEXT
  48.   BRA.S AFTERIT
  49. GADGIT
  50.   REMEMBERPUBMEM REMEMBERKEY,#SIZE.IT
  51.   TST.L D0
  52.   BEQ ERR_MAKEAGADGETMEM
  53.   MOVE.L D0,_THISGITEXT
  54.   MOVE.L D0,A0
  55.   MOVE.L _THISGTEXT,A1
  56.   BSR CREATETEXT
  57.   INTLIB INTUITEXTLENGTH
  58.   MOVE.L D0,D6
  59.   ADDI.W #4,D6
  60.   BCLR #0,D6
  61.   MOVE.W _THISFONTHITE,D7
  62.   ADDI.W #4,D7
  63.   BCLR #0,D7
  64. AFTERIT
  65.   MOVEA.L _THISBBORDER,A0
  66.   ADDA.L #SIZE.BORD,A0
  67.   MOVE.W D6,4(A0)
  68.   MOVE.W D6,8(A0)
  69.   MOVE.W D7,10(A0)
  70.   MOVE.W D7,14(A0)
  71.   MOVE.W #-1,D0
  72.   CMP.W #STRGADGET,_THISGTYPE
  73.   BNE.S BORDERMINONE
  74.   MOVE.W #-5,D0
  75. BORDERMINONE
  76.   MOVE.W D0,2(A0)
  77.   MOVE.W D0,6(A0)
  78.   MOVE.W D0,18(A0)
  79.   MOVE.W D0,(A0)
  80.   MOVE.W D0,12(A0)
  81.   MOVE.W D0,16(A0)
  82.   MOVEA.L _THISBBORDER,A1
  83.   MOVE.L A0,BORD.XY(A1)
  84.   MOVE.B #JAM1,BORD.DRAWMODE(A1)
  85.   MOVE.B #1,BORD.FRONTPEN(A1)
  86.   MOVE.B #5,BORD.COUNT(A1)
  87. _JUSTTHEGADGET
  88.   REMEMBERCHIPMEM REMEMBERKEY,#SIZE.GADG
  89.   TST.L D0
  90.   BEQ ERR_MAKEAGADGETMEM
  91.   MOVE.L D0,_THISGADGET
  92.   MOVE.L D0,A0
  93.   MOVE.W D4,GADG.LEFTEDGE(A0)
  94.   MOVE.W D5,GADG.TOPEDGE(A0)
  95.   MOVE.W D6,GADG.WIDTH(A0)
  96.   MOVE.W D7,GADG.HEIGHT(A0)
  97.   MOVE.W _THISGTYPE,GADG.TYPE(A0)
  98.   MOVE.W _THISGACTIV,GADG.ACTIVATION(A0)
  99.   MOVE.L _THISGITEXT,GADG.TEXT(A0)
  100.   MOVE.W _THISGFLAGS,GADG.FLAGS(A0)
  101.   MOVE.L _THISBBORDER,GADG.RENDER(A0)
  102.   ZERO D1
  103.   MOVE.L _THISGADGET,D0
  104.  RTS
  105.  
  106. ERR_MAKEAGADGETMEM
  107.   MOVE.L #CANTALLOCMEM,D1
  108.   ZERO D0
  109.  RTS
  110.  
  111. ERR_MAKEAGADGET
  112.   MOVE.L #CANTALLOCMEM,D1
  113.   ZERO D0
  114.  RTS
  115.  
  116. MAKEASTRINGADGET
  117.   MOVE.W #STRGADGET,_THISGTYPE
  118.   MOVE.L A0,_THISGBUFFER
  119.   MOVE.L A1,_THISGUNDOBUF
  120.   REMEMBERPUBMEM REMEMBERKEY,#SIZE.SI
  121.   TST.L D0
  122.   BEQ ERR_MAKEAGADGETMEM
  123.   MOVE.L D0,A0
  124.   MOVE.L D0,_THISGSTRINGINFO
  125.   MOVE.L _THISGBUFFER,SI.BUFFER(A0)
  126.   MOVE.L _THISGUNDOBUF,SI.UNDOBUFFER(A0)
  127.   MOVE.W #1,SI.BUFFERPOS(A0)
  128.   MOVE.W #80,SI.MAXCHARS(A0)
  129.   LEA SIZESTRING,A1
  130.   BSR MAKEAGADGET
  131.   MOVE.L _THISGSTRINGINFO,GADG.SPECIALINFO(A0)
  132.   MOVE.W #BOOLGADGET,_THISGTYPE
  133.  RTS
  134.  
  135. MAKEAPROPGADGET
  136.   MOVE.W #PROPGADGET,_THISGTYPE
  137.   REMEMBERCHIPMEM REMEMBERKEY,#SIZE.IMAG
  138.   TST.L D0
  139.   BEQ ERR_MAKEAGADGETMEM
  140.   MOVE.L D0,_THISGIMAGE
  141.   REMEMBERCHIPMEM REMEMBERKEY,#SIZE.PI
  142.   TST.L D0
  143.   BEQ ERR_MAKEAGADGETMEM
  144.   MOVE.L D0,A0
  145.   MOVE.L D0,_THISGPROPINFO
  146.   MOVE.W #AUTOKNOB!FREEHORIZ,PI.FLAGS(A0)
  147.   CMP.B #'V',D3
  148.   BNE.S ITSHORIZONTAL
  149.   MOVE.W #$8000,PI.VERTPOT(A0)
  150.   MOVE.W #$1000,PI.VERTBODY(A0)
  151.   MOVE.W #AUTOKNOB!FREEVERT,PI.FLAGS(A0)
  152. ITSHORIZONTAL
  153.   MOVE.W #$8000,PI.HORIZPOT(A0)
  154.   MOVE.W #$1000,PI.HORIZBODY(A0)
  155.  
  156.   BSR _JUSTTHEGADGET
  157.   MOVE.L _THISGADGET,D0
  158.   ZERO D1
  159.   MOVE.L _THISGIMAGE,GADG.RENDER(A0)
  160.   MOVE.L #0,GADG.TEXT(A0)
  161.   MOVE.L _THISGPROPINFO,GADG.SPECIALINFO(A0)
  162. ENDMAKEPROPGADG
  163.   MOVE.W #BOOLGADGET,_THISGTYPE
  164.  RTS
  165.  
  166. MAKEAGADGETC
  167.   REMEMBERCHIPMEM REMEMBERKEY,#SIZE.IMAG
  168.   TST.L D0
  169.   BEQ ERR_MAKEAGADGETMEM
  170.   MOVE.L D0,_THISGIMAGE
  171.   MOVE.L D0,A0
  172.   MOVE.W D6,IMAG.WIDTH(A0)
  173.   MOVE.W D7,IMAG.HEIGHT(A0)
  174.   BSR _JUSTTHEGADGET
  175.   MOVE.L _THISGADGET,D0
  176.   ZERO D1
  177.   MOVE.L _THISGIMAGE,GADG.RENDER(A0)
  178.   MOVE.L #0,GADG.TEXT(A0)
  179.  RTS
  180.  
  181. _THISGADGET
  182.   DC.L 0
  183. _THISGACTIV
  184.   DC.W STRINGCENTER!RELVERIFY!GADGIMMEDIATE
  185. _THISGFLAGS
  186.   DC.W GADGHCOMP
  187. _THISGTYPE
  188.   DC.W BOOLGADGET
  189. _THISGTEXT
  190.   DC.L 0
  191. _THISGITEXT
  192.   DC.L 0
  193. _THISBBORDER
  194.   DC.L 0
  195. SIZESTRING
  196.   DC.B 0
  197.   EVENPC
  198.  
  199. _THISGSTRINGINFO
  200.   DC.L 0
  201. _THISGBUFFER
  202.   DC.L 0
  203. _THISGUNDOBUF
  204.   DC.L 0 
  205. _THISGIMAGE
  206.   DC.L 0
  207. _THISGPROPINFO
  208.   DC.L 0
  209.